A Concurrent Bidirectional Linear Probing Algorithm Towards a Concurrent Compact Hash Table
نویسنده
چکیده
Hash tables are commonly used data structures for representing subsets of a large key universe. In these tables, the complete key is stored in order to resolve the item in case of a collision. Since the 1980’s, there are known techniques to reduce the used memory by only storing a part of the original key. However, there are no known concurrent implementations of these so-called compact hash tables. Nowadays, the way to obtain the most performance gain, is to utilize the multiple CPU cores many machines are equipped with. This paper describes the parallelization of the bidirectional linear probing algorithm developed by Amble & Knuth, with a minimal memory overhead. We proved correct and implemented the algorithm and show, with results from experiments, that it scales well.
منابع مشابه
Hopscotch Hashing
We present a new resizable sequential and concurrent hash map algorithm directed at both uniprocessor and multicore machines. The algorithm is based on a novel hopscotch multi-phased probing and displacement technique that has the flavors of chaining, cuckoo hashing, and linear probing, all put together, yet avoids the limitations and overheads of these former approaches. The resulting algorith...
متن کاملCache-Aware Lock-Free Concurrent Hash Tries
This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-andswap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run independent of each other and do not contend. Remove operations ensure that the unneeded memory is freed and that the trie is kept compact. A pseudocode for these...
متن کاملSimple Fast Parallel Hashing by Oblivious Execution
A hash table is a representation of a set in a linear size data structure that supports constant-time membership queries. We show how to construct a hash table for any given set of n keys in O(lg lg n) parallel time with high probability, using n processors on a weak version of a concurrent-read concurrent-write parallel random access machine (crcw pram). Our algorithm uses a novel approach of ...
متن کاملResizable, Scalable, Concurrent Hash Tables via Relativistic Programming
We present algorithms for shrinking and expanding a hash table while allowing concurrent, wait-free, linearly scalable lookups. These resize algorithms allow ReadCopy Update (RCU) hash tables to maintain constanttime performance as the number of entries grows, and reclaim memory as the number of entries decreases, without delaying or disrupting readers. We call the resulting data structure a re...
متن کاملResizable, Scalable, Concurrent Hash Tables
We present algorithms for shrinking and expanding a hash table while allowing concurrent, wait-free, linearly scalable lookups. These resize algorithms allow the hash table to maintain constant-time performance as the number of entries grows, and reclaim memory as the number of entries decreases, without delaying or disrupting readers. We implemented our algorithms in the Linux kernel, to test ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011